// src/utils/request.js
import axios from 'axios';
import errorCode from "@/utils/errorCode";

// 创建 axios 实例
const request = axios.create({
    baseURL: process.env.VUE_APP_API_URL, // 从环境变量读取 API 地址
    timeout: 30000, // 请求超时设置
    headers: {
    'Content-Type': 'application/json',
  }
});


// 请求拦截器：可以在这里统一处理请求前的逻辑
request.interceptors.request.use(config => {
    // 可以在这里加上如 token 的认证等
    return config;
}, error => {
    return Promise.reject(error);
});

// 响应拦截器：处理响应数据
request.interceptors.response.use(response => {
     return response.data; // 返回响应的 data 部分
}, error => {
    // 错误处理
    console.error('API 请求出错:', error.response ? error.response.data : error.message);
     // 响应错误处理
    console.error('响应错误', error);
    // 这里可以根据错误状态码处理不同的情况
    return Promise.reject(error);
});

// 封装 GET 请求
export function get(url, params) {
    return request.get(url, {params});
}

// 封装 POST 请求
export function post(url, data) {
    return request.post(url, data);
}

// 封装 PUT 请求
export function put(url, data) {
    return request.put(url, data);
}

// 封装 DELETE 请求
export function del(url, params) {
    return request.delete(url, {params});
}

export default request;
